package com.fufan.mtsaas.modules.newtech.xjstech.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.ObjectMapper;

import java.io.IOException;
import java.util.Date;
import java.io.Serializable;

/**
 * @author Liby
 * @date 2024-12-16
 */
@Data
@ApiModel(description = "XJSTech模型")
@TableName("xjs_tech")
public class XjsTech implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    @ApiModelProperty(value = "系统ID")
    private Long id;
    @ApiModelProperty(value = "项目编号")
    private String projectNo;
    @ApiModelProperty(value = "项目名称")
    private String name;
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "项目描述")
    private String description;
    @ApiModelProperty(value = "详细目录")
    private String detailContents;
    // 甘肃项目修改 项目分类 1-非限制类，2-限制类，3-上海首家
    @ApiModelProperty(value = "项目分类 1-非限制类，2-限制类")
    private Integer projectClass;
    @Getter
    @ApiModelProperty(
            value = "技术类别（JSON 字符串格式，[一级分类, 二级分类]，一级分类：1=手术操作类，2=非手术操作类；二级分类：11-14 或 21-24 表示一级到四级项目）",
            example = "[1,11]"
    )
    private String techType;
    @ApiModelProperty(value = "申请部门id、申请科室id")
    private Long applyDeptId;
    @ApiModelProperty(value = "申请部门负责人id")
    private Long applyManagerId;
    @ApiModelProperty(value = "申请部门负责人")
    private String applyManagerName;
    @ApiModelProperty(value = "申请人id、填报人id")
    private Long applyUserId;
    @ApiModelProperty(value = "填报人姓名/申请人姓名")
    private String applyUserName;
    @ApiModelProperty(value = "完成填表时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date fillTime;
    @ApiModelProperty(value = "工号")
    private String workNumber;
    @ApiModelProperty(value = "设备或试剂: 1-有，0-无")
    private Integer equipmentReagentsExist;
    @ApiModelProperty(value = "收费编码: 1-有，0-无")
    private Integer chargeCodeType;
    @ApiModelProperty(value = "收费编码")
    private String chargeCode;
    @ApiModelProperty(value = "伦理附件")
    private String ethicsDocs;
    @ApiModelProperty(value = "申请书")
    private String applyDocs;
    @ApiModelProperty(value = "初筛表")
    private String screeningDocs;
    @ApiModelProperty(value = "设备证书/设备三证")
    private String deviceDocs;
    @ApiModelProperty(value = "设备证书: 1-有，0-无")
    private Integer deviceDocsExist;
    @ApiModelProperty(value = "其他附件/补充附件")
    private String additionalDocs;
    @ApiModelProperty(value = "状态：0-草稿 10-科室负责人初审；20-医务部初审；30-伦理委员会；40-院内组织评审；50-医保办公室；60-财务部；70-项目开通；80-年审下发", hidden = true)
    private Integer status;
    @ApiModelProperty(value = "审核状态 1未提交 2处理中 3已完结 4已驳回")
    private Integer auditStatus;
    @ApiModelProperty(value = "开通时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date openTime;
    @ApiModelProperty(value = "需要年审：1需要 2 不需要")
    private Integer needYearAudit;
    @ApiModelProperty(value = "年审次数")
    private Integer yearAuditNum;
    @ApiModelProperty(value = "最后一次年审时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastYearAuditTime;
    @ApiModelProperty(value = "创建时间、申报时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    @ApiModelProperty(value = "创建人")
    private String createBy;
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    @ApiModelProperty(value = "修改人")
    private String updateBy;
    @ApiModelProperty(value = "启用状态 0：正常 1：禁用", hidden = true)
    private Integer isEnabled;
    @ApiModelProperty(value = "删除状态 0：否 1：是", hidden = true)
    private Integer delFlag;
    @ApiModelProperty(value = "公司ID", hidden = true)
    private Long companyId;

    @ApiModelProperty(value = "项目负责人姓名")
    private String projectManagerName;
    @ApiModelProperty(value = "项目成员")
    private String projectMember;
    @ApiModelProperty(value = "保留字段3")
    private String reservedField3;
    @ApiModelProperty(value = "保留字段4")
    private String reservedField4;
    @ApiModelProperty(value = "保留字段5")
    private String reservedField5;
    @ApiModelProperty(value = "保留字段6")
    private Integer reservedField6;
    @ApiModelProperty(value = "保留字段7")
    private Integer reservedField7;
    @ApiModelProperty(value = "保留字段8")
    private Integer reservedField8;
    @ApiModelProperty(value = "保留字段9")
    private Integer reservedField9;
    @ApiModelProperty(value = "保留字段10")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reservedField10;
    @ApiModelProperty(value = "保留字段11")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reservedField11;
    @ApiModelProperty(value = "保留字段12")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reservedField12;
    @ApiModelProperty(value = "保留字段13")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reservedField13;
    @ApiModelProperty(value = "项目负责人工号")
    private String projectManagerEmp;
    @ApiModelProperty(value = "项目负责人联系方式")
    private String projectManagerContact;

    @ApiModelProperty(value = "目标例数")
    private Integer targetNumber;


    @ApiModelProperty(value = "设别名称")
    private String deviceNames;




}
